const readlindSync = require('readline-sync');
module.exports = main;
    let studentName = [];
    let studentID;
function main(){
    console.log(`1. 添加学生\n`+
    `2. 生成成绩单\n`+
    `3. 退出\n`+
    `请输入你的选择（1～3）：`);

    let choice = readlindSync.question();
    while(choice !== '1' && choice !== '2' && choice !== '3'){
        console.log('输入错误');
        console.log(`1. 添加学生\n`+
        `2. 生成成绩单\n`+
        `3. 退出\n`+
        `请输入你的选择（1～3）：`);
        choice = readlindSync.question();
    }
  
    if(choice === '1'){
        studentName = addStudent();
    }else if(choice === '2'){
        studentID = addid();
        if(studentID){
           displayScore(studentName,studentID);
        }
    }
    // console.log(`1. 添加学生\n`+
    // `2. 生成成绩单\n`+
    // `3. 退出\n`+
    // `请输入你的选择（1～3）：`);
        choice = readlindSync.question();
}
main();

function addStudent(){
    console.log("请输入学生信息：");
    let s = readlindSync.question();
    studentName.push(s);
    console.log("学生添加成功!");
    console.log("继续添加？1.Yes.2.No");
    let choice = readlindSync.question();
    if(choice === '1'){
        return studentName.concat(addStudent());
    }else{
        console.log(`1. 添加学生\n`+
        `2. 生成成绩单\n`+
        `3. 退出\n`+
        `请输入你的选择（1～3）：`);
        return studentName;
    }
}

function addid(){
    console.log('请输入要打印的学生的学号（格式： 学号, 学号,...），按回车提交：');
    studentID = readlindSync.question();
    if((/^\d{4}$/).test(studentID)){
        studentID = readlindSync.question();
    }
    studentID = studentID.split(',');
    return studentID;
}

function displayScore(studentArr,studentidArr){
    let str = '';
    for(let itemid of studentidArr){
        for(let itemobj of studentArr){
            if(itemid === itemobj.id){
                let sum = parseInt(itemobj.score.Math) + parseInt(itemobj.score.Chi) +
                        parseInt(itemobj.score.Eng) + parseInt(itemobj.score.Code);
                let average = (sum / 4).toFixed(1)
                str += `${itemobj.name}|${itemobj.score.Math}|${itemobj.score.Chi}|${itemobj.score.Eng}|${itemobj.score.Code}|${average}|${sum}\n`;
            }
        }
    }
    console.log(`姓名|数学|语文|英语|编程|平均分|总分\n`+
    `========================\n`+
    `${str}`+
    `========================\n`+
    `全班总分平均数：xxx\n`+
    `全班总分中位数：xxx\n`);
}
